package cn.yh.nft.turbo.base.utils;

import cn.hutool.core.date.DateUtil;

import java.util.Date;

import static cn.yh.nft.turbo.base.constant.DateConstant.DATA_FORMAT_TIME_DIVIDE_SECOND_MILLI;
import static cn.yh.nft.turbo.base.constant.DateConstant.DATA_FORMAT_YEAR_MONTH_DAY;
import static cn.yh.nft.turbo.base.constant.ProfileConstant.FILE_PATH_SEPARATOR;

/**
 * @ClassName: FileUtils
 * @Author: 草莓爱上啵啵
 */
public class FileUtils {

    /**
     * 根据源文件名称，重新定义存入第三方服务的文件相对路径 + 名称
     * @param originalFilename
     * @return
     */
    public static String newImageFileNameSuffix(String userId, String originalFilename){


        //以用户id分隔每个用户存放的图片位置
        String path = userId
                + FILE_PATH_SEPARATOR
                //以天为单位作为文件夹名称
                + DateUtil.format(new Date(), DATA_FORMAT_YEAR_MONTH_DAY)
                + FILE_PATH_SEPARATOR
                //以时间戳作为文件的新名称
                + DateUtil.format(new Date(), DATA_FORMAT_TIME_DIVIDE_SECOND_MILLI)
                //获取源文件后缀并拼接到新文件名称后
                + originalFilename.substring(originalFilename.lastIndexOf("."));

        return path;
    }

    /**
     * 生成藏品图片远程保存的url地址逻辑
     * @param userId
     * @param filename
     * @return
     */
    public static String newCollectionImageSuffix(String userId, String filename) {

        //以藏品id分隔每个藏品存放的图片位置
        return "collection/"
                //以天为单位作为文件夹名称
                + DateUtil.format(new Date(), DATA_FORMAT_YEAR_MONTH_DAY)
                + FILE_PATH_SEPARATOR
                //以时间戳作为文件的新名称
                + DateUtil.format(new Date(), DATA_FORMAT_TIME_DIVIDE_SECOND_MILLI)
                //获取源文件后缀并拼接到新文件名称后
                + filename.substring(filename.lastIndexOf("."));
    }
}
